home *** CD-ROM | disk | FTP | other *** search
/ Halting the Hacker - A P…uide to Computer Security / Halting the Hacker - A Practical Guide to Computer Security.iso / rfc / rfc1205.txt < prev    next >
Text File  |  1997-04-01  |  27KB  |  675 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                     P. Chmielewski
  8. Request for Comments: 1205                               IBM Corporation
  9.                                                            February 1991
  10.  
  11.  
  12.                          5250 Telnet Interface
  13.  
  14. Status of this Memo
  15.  
  16.    This RFC is being distributed in order to document the interface to
  17.    the IBM 5250 Telnet implementation.  This information is being
  18.    provided for hosts on the Internet that want to support the 5250 work
  19.    station data stream within the Telnet protocol.  This memo provides
  20.    information for the Internet community.  It does not specify any
  21.    standard.  Distribution of this memo is unlimited.
  22.  
  23. 1.  Introduction
  24.  
  25.    This RFC describes the interface to the IBM 5250 Telnet
  26.    implementation.  The purpose of this memo is to describe the details
  27.    of the interface so that a person wanting to implement a client
  28.    Telnet which emulates an IBM 5250 work station would be able to do
  29.    so.  This memo does not describe all of the 5250 commands, aid codes,
  30.    and other information specific to the 5250 data stream.  That
  31.    information is contained in the IBM 5250 Information Display System,
  32.    Functions Reference Manual, IBM publication number SA21-9247.
  33.    Corrections and additions to this manual are documented in this RFC
  34.    in section 5.
  35.  
  36. 2.  Telnet Options
  37.  
  38.    No new Telnet options are defined for 5250 mode of operation.
  39.    However, to enable 5250 mode, both the client and server must agree
  40.    to at least support the Binary, End-Of-Record (EOR), and Terminal-
  41.    Type Telnet options.  The complete list of 5250 terminal types is
  42.    maintained in the Assigned Numbers RFC and includes the following:
  43.  
  44.      IBM-5555-C01   24 x 80 Double-Byte Character Set color display
  45.      IBM-5555-B01   24 x 80 Double-Byte Character Set (DBCS)
  46.      IBM-3477-FC    27 x 132 color display
  47.      IBM-3477-FG    27 x 132 monochrome display
  48.      IBM-3180-2     27 x 132 monochrome display
  49.      IBM-3179-2     24 x 80 color display
  50.      IBM-3196-A1    24 x 80 monochrome display
  51.      IBM-5292-2     24 x 80 color display
  52.      IBM-5291-1     24 x 80 monochrome display
  53.      IBM-5251-11    24 x 80 monochrome display
  54.  
  55.  
  56.  
  57.  
  58. Chmielewski                                                     [Page 1]
  59.  
  60. RFC 1205                 5250 Telnet Interface             February 1991
  61.  
  62.  
  63.    An example of a typical negotiation process to establish 5250 mode of
  64.    operation is shown below.  In this example, the server initiates the
  65.    negotiation by sending the DO TERMINAL-TYPE request.
  66.  
  67.     Server: IAC DO TERMINAL-TYPE
  68.     Client: IAC WILL TERMINAL-TYPE
  69.     Server: IAC SB TERMINAL-TYPE SEND IAC SE
  70.     Client: IAC SB TERMINAL-TYPE IS IBM-5251-11 IAC SE
  71.     (The client has specified its terminal-type is an IBM-5251-11)
  72.  
  73.     Server: IAC DO END-OF-RECORD
  74.     Client: IAC WILL END-OF-RECORD
  75.     Server: IAC WILL END-OF-RECORD
  76.     Client: IAC DO END-OF-RECORD
  77.     (The server and client have both agreed to transmit EORs)
  78.  
  79.     Server: IAC DO TRANSMIT-BINARY
  80.     Client: IAC WILL TRANSMIT-BINARY
  81.     Server: IAC WILL TRANSMIT-BINARY
  82.     Client: IAC DO TRANSMIT-BINARY
  83.     (The server and client have both agreed to binary transmission)
  84.  
  85. 3.  Data Stream Format
  86.  
  87.    The actual data stream that is exchanged between the client and
  88.    server is composed of a header followed by the 5250 work station data
  89.    stream.  For information about the 5250 work station data stream
  90.    refer to the IBM 5250 Information Display System, Functions Reference
  91.    Manual (SA21-9247).  The header which prefixes the 5250 data stream
  92.    was originally designed for the 5250 Display Station Pass-Through
  93.    (DSPT) application.  5250 DSPT is an application similar to Telnet
  94.    which runs on the IBM AS/400, System/36, and System/38 over an SNA
  95.    network.  This header is designed to be variable in length and is
  96.    composed of two parts.  The first, fixed part is always 6 octets long
  97.    and has the following format:
  98.  
  99.       0                   1                   2                   3
  100.       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  101.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  102.      |     Logical Record Length     |       Record Type             |
  103.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  104.      |        Reserved               |
  105.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  106.  
  107.    Logical Record Length:  16 bits
  108.  
  109.       This field indicates the length, in octets, of this logical record
  110.       including the header length.  The length is calculated BEFORE
  111.  
  112.  
  113.  
  114. Chmielewski                                                     [Page 2]
  115.  
  116. RFC 1205                 5250 Telnet Interface             February 1991
  117.  
  118.  
  119.       doubling any IAC characters in the data stream.  The length does
  120.       not include the <IAC><EOR> that is appended to the end of the data
  121.       stream to mark the end of this logical record.  The length is
  122.       specified with the most significant octet first.  For example, a
  123.       length of 36 (decimal) would be specified as '0024'X.
  124.  
  125.    Record Type:  16 bits
  126.  
  127.       This field indicates the SNA record type.  It should always be set
  128.       to '12A0'X to indicate the General Data Stream (GDS) record type.
  129.  
  130.    Reserved:  16 bits
  131.  
  132.       This field is currently not used.
  133.  
  134.    The second part of the header is designed to be variable in length.
  135.    The length of this variable part is specified in the first octet.
  136.    Currently this portion of the header will always be 4 octets long and
  137.    has the following format:
  138.  
  139.       0                   1                   2                   3
  140.       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  141.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  142.      |               |E|A| | | |S|T|H|               |               |
  143.      | Var Hdr Len   |R|T| | | |R|R|L|               |    Opcode     |
  144.      |               |R|N| | | |Q|Q|P|               |               |
  145.      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  146.  
  147.    Var Hdr Len:  8 bits
  148.  
  149.       The length, in octets, of the variable portion of the header.
  150.       Currently this is always '04'X.
  151.  
  152.    Flags:  16 bits
  153.  
  154.        Bit 0:      ERR     This bit is set to indicate a data stream
  155.                            output error.  The negative response code
  156.                            is sent as data following the opcode field.
  157.        Bit 1:      ATN     This bit is set to indicate that the 5250
  158.                            attention key was pressed.
  159.        Bits 2-4:   *       These bits are reserved (set to zero).
  160.        Bit 5:      SRQ     This bit is set to indicate that the 5250
  161.                            System Request key was pressed.
  162.        Bit 6:      TRQ     This bit is set to indicate that the 5250
  163.                            Test Request key was pressed.
  164.        Bit 7:      HLP     This bit is set to indicate the Help in
  165.                            Error State function.  The error code is
  166.                            sent as data following the header and is
  167.  
  168.  
  169.  
  170. Chmielewski                                                     [Page 3]
  171.  
  172. RFC 1205                 5250 Telnet Interface             February 1991
  173.  
  174.  
  175.                            a four digit packed decimal number.  For
  176.                            example, an error code of '0005'X indicates
  177.                            the operator attempted to type in an area of
  178.                            the display that is not enabled for input.
  179.        Bits 8-15:  *       These bits are reserved (set to zero).
  180.  
  181.    Opcode:  8 bits
  182.  
  183.       This field contains the operation code.  It is set to indicate the
  184.       type of operation requested by the sender.  The following are the
  185.       valid values:
  186.  
  187.          '00'X:  No Operation
  188.          '01'X:  Invite Operation
  189.          '02'X:  Output Only
  190.          '03'X:  Put/Get Operation
  191.          '04'X:  Save Screen Operation
  192.          '05'X:  Restore Screen Operation
  193.          '06'X:  Read Immediate Operation
  194.          '07'X:  Reserved
  195.          '08'X:  Read Screen Operation
  196.          '09'X:  Reserved
  197.          '0A'X:  Cancel Invite Operation
  198.          '0B'X:  Turn On Message Light
  199.          '0C'X:  Turn Off Message Light
  200.  
  201.    The actual 5250 work station data stream will immediately follow the
  202.    opcode field in the header and will be terminated by the <IAC><EOR>
  203.    pair.  For some operations the header will be immediately followed by
  204.    an <IAC><EOR> without any 5250 work station data stream in between.
  205.    For example, the following request to turn on the message light could
  206.    be sent by the server:
  207.  
  208.         000A 12A0 0000 0400 000B FFEF
  209.         |    |    |    | |    |  |
  210.         |    |    |    | |    |  End Of Record marker
  211.         |    |    |    | |    |
  212.         |    |    |    | |    Opcode = Turn On Message Light ('0B'X)
  213.         |    |    |    | |
  214.         |    |    |    | Flags = '0000'X
  215.         |    |    |    |
  216.         |    |    |    Variable Header Length = '04'X
  217.         |    |    |
  218.         |    |    Reserved - Set to '0000'X
  219.         |    |
  220.         |    Record Type = General Data Stream ('12A0'X)
  221.         |
  222.         Logical Record Length = '000A'X for this record
  223.  
  224.  
  225.  
  226. Chmielewski                                                     [Page 4]
  227.  
  228. RFC 1205                 5250 Telnet Interface             February 1991
  229.  
  230.  
  231.    In this example the requested operation is indicated by the opcode
  232.    and there is no associated work station data stream.
  233.  
  234. 4.  Data Flow Examples
  235.  
  236.    The following examples illustrate the flow of data between the client
  237.    and server for some of the more common operations.  These examples
  238.    are intended to show the order in which the logical records are sent
  239.    between the client and server and the content of those records.  The
  240.    hex representation of the records which are exchanged between the
  241.    client and server is shown.  The way in which a client implements the
  242.    various operations will differ between implementations and those
  243.    details are not discussed here.  In these examples, when the value of
  244.    a field is dependent on the length of the screen data for a
  245.    particular logical record, it will be represented as 'LLLL'.
  246.  
  247. 4.1  Query Device Example
  248.  
  249.    A Query command may be sent by the server system in order to
  250.    determine the attributes of the device it is talking to.  When a
  251.    client receives a Query command, it must send the Query Reply back to
  252.    the server.  See section 5 for a complete description of the format
  253.    for the Query command and Query Reply.
  254.  
  255.    Server: Sends Write Structured    001112A0 00000400 000304F3 0005D970
  256.            Field Query command.      00FFEF
  257.  
  258.    Client: Responds with a Query     004712A0 00000400 00000000 88003AD9
  259.            Reply, in this case,      70800600 01030000 00000000 00000000
  260.            for a 3180-2.             00000000 00000001 F3F1F8F0 F0F0F202
  261.                                      00000061 50000100 00000018 11000000
  262.                                      00000000 000000FF EF
  263.  
  264.  
  265. 4.2  Cancel Invite Example
  266.  
  267.    The server will send a Cancel Invite when it needs to reverse the
  268.    normal flow direction.  When a client receives a Cancel Invite, it
  269.    should reply with a Cancel Invite and not send any user data until
  270.    the server has once again "invited" the work station.  A work station
  271.    is said to be "invited" when the server has sent a read command to
  272.    the client.  The Cancel Invite flow is as follows:
  273.  
  274.    Server: Sends header with the     000A12A0 00000400 000AFFEF
  275.            Opcode = Cancel Invite.
  276.  
  277.    Client: Sends header with the     000A12A0 00000400 000AFFEF
  278.            Opcode = Cancel Invite
  279.  
  280.  
  281.  
  282. Chmielewski                                                     [Page 5]
  283.  
  284. RFC 1205                 5250 Telnet Interface             February 1991
  285.  
  286.  
  287.            to indicate that the
  288.            work station is no
  289.            longer invited.
  290.  
  291. 4.3  System Request Example
  292.  
  293.    The 5250 System Request operation is invoked when a client wants to
  294.    interrupt the server job to perform some function.  The typical
  295.    scenario would be for a user to press the system request key, or
  296.    whatever key is mapped to a system request key, which would cause the
  297.    client Telnet to initiate the following flow:
  298.  
  299.    Client: Sends header with the     000A12A0 00000404 0000FFEF
  300.            System Request bit set.
  301.  
  302.    Note:  It is possible for a client to include user data in this
  303.    record following the header.  This data would be interpreted by the
  304.    server as an option to be selected from the system request menu.  If
  305.    this were the case, the server would not send the system request menu
  306.    and the flow would continue based on the option selected.  For this
  307.    example, the client does not send any user data and the flow would
  308.    continue as follows:
  309.  
  310.    Server: Sends header with the     000A12A0 00000400 000AFFEF
  311.            Opcode = Cancel Invite.
  312.  
  313.    Client: Sends header with the     000A12A0 00000400 000AFFEF
  314.            Opcode = Cancel Invite
  315.            to indicate that the
  316.            work station is no
  317.            longer invited.
  318.  
  319.    Server: Sends Save (Immediate)    000C12A0 00000400 00040402 FFEF
  320.            command with
  321.            Opcode = Save Screen.
  322.  
  323.    Client: Sends the screen image    LLLL12A0 00000400 00040412
  324.            to be saved.              <Screen Image> FFEF
  325.  
  326.    Server: Sends System Request      LLLL12A0 00000400 0003
  327.            menu with                 <System Request Menu> FFEF
  328.            Opcode = Put/Get.
  329.  
  330.    Client: Sends User Input to       LLLL12A0 00000400 0000
  331.            the Sys Req menu.         <User Input> FFEF
  332.  
  333.    Note: What happens next will depend on the System Request option
  334.    selected by the user.  After any System Request processing has
  335.  
  336.  
  337.  
  338. Chmielewski                                                     [Page 6]
  339.  
  340. RFC 1205                 5250 Telnet Interface             February 1991
  341.  
  342.  
  343.    completed, the server will continue with the following restore
  344.    operation:
  345.  
  346.    Server: Sends the saved           LLLL12A0 00000400 00050412
  347.            screen to be restored,    <Saved Screen> FFEF
  348.            Opcode = Restore Screen.
  349.  
  350.    (No reply is necessary from the client)
  351.  
  352.    Server: Sends Read Modified       000E12A0 00000400 00010452 0000FFEF
  353.            Data Tag (MDT) command,
  354.            opcode = Invite.
  355.  
  356.    At this point the client would "invite" the workstation and enter the
  357.    state that it was in prior to the System Request key being hit.
  358.  
  359. 5.  5250 Data Stream Enhancements
  360.  
  361.    This section is intended to be used as an addendum to the IBM 5250
  362.    Information Display System, Functions Reference Manual.  Described
  363.    here are enhancements to the 5250 data stream which are not yet
  364.    documented in the current version of that manual.  The current
  365.    version of that manual at the time of this writing has the IBM
  366.    publication number SA21-9247-6.  Also described in this section are
  367.    corrections to erroneous information contained in SA21-9247-6.
  368.    Listed below are the specific corrections and enhancements, with an
  369.    approximate page number reference to the above manual.
  370.  
  371. 5.1  Errors or Inconsistencies in SA21-9247-6
  372.  
  373.    The Insert Cursor (IC) order on pages 2-136 and 2-137 is incorrectly
  374.    listed with a value of Hex 03; the correct value is Hex 13.
  375.  
  376.    On page 2-137, the listed "Restrictions" for the Insert Cursor,
  377.    Repeat to Address, and Set Buffer Address orders should be updated to
  378.    describe how Row and Column values must be valid for the current
  379.    display screen size (either 24 x 80 or 27 x 132).
  380.  
  381. 5.2  Enhancements to Existing 5250 Data Stream Commands/Orders
  382.  
  383.    A new flag is added to the second byte of the Control Character on
  384.    page 2-40.  This flag is used to specify whether the cursor should be
  385.    moved or not moved at the end of the Write to Display processing.
  386.    Bit 1 of the second byte, which was previously reserved, will now be
  387.    used for this flag.  If bit 1 is a 0, the cursor continues to be
  388.    moved to the system IC address on a Lock-to-Unlock keyboard
  389.    transition.  If bit 1 is a 1, the cursor is not moved.
  390.  
  391.  
  392.  
  393.  
  394. Chmielewski                                                     [Page 7]
  395.  
  396. RFC 1205                 5250 Telnet Interface             February 1991
  397.  
  398.  
  399.    A new Field Control Word (FCW) will be added on page 2-65 to indicate
  400.    an entry field contains transparent data.  This means the entry field
  401.    contents are sent from the display screen directly to the host at
  402.    read time with no formatting.  Therefore, an entry field can contain
  403.    any values (Hex 00 to Hex FF).  A transparent field is indicated by a
  404.    Hex 84xx FCW, where xx is any value.  Note: unpredictable results
  405.    will occur if a field is defined as both signed numeric and a
  406.    transparent field.
  407.  
  408.    The Read Immediate, Read Input Fields, and Read MDT Fields commands
  409.    have been enhanced to include support for transparent fields (page
  410.    2-5).  If a transparent FCW is found for an input field, the field
  411.    data is not formatted (for example, nulls are not converted to
  412.    blanks).
  413.  
  414.    The restriction listed for the Set Buffer Address (SBA) order (page
  415.    2-138) on the column address equal to zero is no longer always the
  416.    case.  A reference to Start of Field (SF) row 1/column 1 field
  417.    support should be made.  A note should be added in SF to describe Row
  418.    1/Column 1 field support.  A Row 1/Column 1 field is defined by a SBA
  419.    of row 1/column 0, followed by an SF.  For a Row 1/Column 1 input
  420.    field, the first input-capable position is row 1/column 1.  If the SF
  421.    defines an input field, the screen attribute is not allowed to be
  422.    nondisplay.  Writing of the screen attribute is suppressed for a Row
  423.    1/Column 1 field and the attribute discarded.
  424.  
  425. 5.3  New 5250 Data Stream Commands/Orders
  426.  
  427.    The Read MDT Fields Alternate input command has been added.  It is
  428.    the same as the Read MDT Fields command except:
  429.  
  430.       - The command is indicated by a X'82'
  431.       - Leading and embedded nulls within the field remain as nulls
  432.  
  433.    The Read MDT Fields Immediate Alternate input command has been added.
  434.    It is the same as the Read MDT Fields Alternate command except:
  435.  
  436.       - The command is indicated by a X'83'
  437.       - The command is an immediate read command like Read Immediate;
  438.         therefore, no control characters follow the command byte,
  439.         field data is returned immediately, and the aid code is X'00'.
  440.  
  441.    The Move Cursor order (MC) has been added (page 2-137).  The MC order
  442.    moves the cursor to the location specified by the two bytes following
  443.    the order.  Byte 1 gives the row address and byte 2 gives the column
  444.    address.  The MC order is useful when the cursor is to be moved
  445.    without affecting the system IC address.  The MC order is unaffected
  446.    by the Write to Display control character values including the "Leave
  447.  
  448.  
  449.  
  450. Chmielewski                                                     [Page 8]
  451.  
  452. RFC 1205                 5250 Telnet Interface             February 1991
  453.  
  454.  
  455.    Cursor" flag (CC1 bit 1).  If more than one MC or IC are found in the
  456.    data stream, the cursor will move to the address specified in the
  457.    last MC or IC.
  458.  
  459.    Restrictions:
  460.  
  461.      A parameter error will be posted when:
  462.       - There are fewer then two bytes following the order.
  463.       - The row address is zero or greater than the number of
  464.         rows on the display screen.
  465.       - The column address is zero or greater than the number of
  466.         columns on the display screen.
  467.  
  468.    Format:
  469.  
  470.      Move Cursor Order  Byte 1        Byte 2
  471.  
  472.           X'14'       Row Address   Column Address
  473.  
  474.    Results:
  475.  
  476.      The address specified by the MC order is used to move the
  477.      cursor when the Write to Display is completed.
  478.  
  479.    The Transparent Data order (TD) has been added (page 2-137).  The TD
  480.    order is followed by two length bytes and transparent data.  The
  481.    transparent data is written to the display screen at the current
  482.    display address; any values (Hex 00 to Hex FF) are allowed in the
  483.    transparent data.  All length values are valid as long as the end of
  484.    the display screen is not overwritten.
  485.  
  486.    Restrictions:
  487.  
  488.      A parameter error will be posted when:
  489.       - There are fewer then two bytes following the order.
  490.       - There are fewer bytes in the data stream then specified in the
  491.         length field.
  492.       - Attempting to write beyond the end of the display screen.
  493.  
  494.    Format:
  495.  
  496.      TD Order   Bytes 1 and 2           Bytes 3 to ?
  497.  
  498.        X'10'    Length of transparent   Transparent data
  499.                 data (not counting
  500.                 length bytes)
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Chmielewski                                                     [Page 9]
  507.  
  508. RFC 1205                 5250 Telnet Interface             February 1991
  509.  
  510.  
  511.    Results:
  512.      The transparent data is written to the display.
  513.  
  514.    The Query command is a new input command (page 2-5) and is used by
  515.    the server to obtain information on the functional capabilities of
  516.    the client 5250 display.  When the client receives a Query command,
  517.    the client sends a Query Reply describing its capabilities back to
  518.    the server.
  519.  
  520.    The Query command must follow an Escape ('04'X) and Write Structured
  521.    Field command ('F3'X).  The format of the Query command is as
  522.    follows:
  523.  
  524.       Byte       Value        Description
  525.      ======     =======   ========================
  526.       0-1       X'0005'   Length of command
  527.        2         X'D9'    Command Class
  528.        3         X'70'    Command Type - Query
  529.        4         X'00'    Flag Byte
  530.         Bit 0:   B'0'     - Query Command
  531.         Bit 1-7:          - Reserved (set to zero)
  532.  
  533.    The format of the Query Reply is as follows:
  534.  
  535.       Byte   Value         Description
  536.      =====  ========  ===================================
  537.       0-1   X'0000'   Cursor Row/Column (set to zero)
  538.        2    X'88'     Inbound Write Structured Field Aid
  539.       3-4   X'003A'   Length of Query Reply
  540.        5    X'D9'     Command Class
  541.        6    X'70'     Command Type - Query
  542.        7    X'80'     Flag Byte
  543.         Bit 0:   B'1'  - Query Reply
  544.         Bit 1-7:       - Reserved (set to zero)
  545.       8-9            Controller Hardware Class
  546.             X'0001'   - Local Twinax Controller
  547.             X'0061'   - Local ASCII Controller
  548.             X'0101'   - SDLC/X.21/X.25 Twinax Controller
  549.                             (5394 emulating a 5294)
  550.             X'0103'   - SDLC/X.21/X.25 Twinax Controller (5394)
  551.             X'0200'   - PC DOS non-DBCS WSF
  552.             X'0300'   - OS/2 non-DBCS WSF
  553.             X'0400'   - PC DOS DBCS WSF
  554.             X'0500'   - OS/2 DBCS WSF
  555.             X'0600'   - Other WSF or any other 5250 Emulator
  556.      10-12           Controller Code Level
  557.             X'010300' - For example, Version 1 Rel 3.0
  558.      13-28  X'00'    Reserved (set to zero)
  559.  
  560.  
  561.  
  562. Chmielewski                                                    [Page 10]
  563.  
  564. RFC 1205                 5250 Telnet Interface             February 1991
  565.  
  566.  
  567.       29             Device Type
  568.             X'01'     - 5250 Display or 5250 Emulation
  569.      30-33  C'cccc'  Device Type (e.g. 3180 for 3180 Mod 2)
  570.      34-36  C'ccc'   Device Model (e.g. 002 for 3180 Mod 2)
  571.       37             Keyboard ID
  572.             X'02'     - Standard Keyboard
  573.             X'82'     - G Keyboard
  574.       38    X'00'    Extended Keyboard ID
  575.       39    X'00'    Reserved
  576.      40-43  X'xxxxxxxx' Display Serial Number
  577.      44-45           Maximum number of input fields
  578.             X'0100'   - Typically = 256 input fields
  579.      46-48  X'00'    Reserved (set to zero)
  580.      49-53           Controller/Display Capability
  581.        Bit 0-1: B'00' - No Row 1/Col 1 support
  582.                 B'01' - Row 1/Col 1 support
  583.        Bit 2:   B'0'  - No Read MDT Alternate Command support
  584.                 B'1'  - Read MDT Alternate Command support
  585.        Bit 3:   B'0'  - Display does not have PA1/PA2 support
  586.                 B'1'  - Display does have PA1/PA2 support
  587.        Bit 4:   B'0'  - Display does not have PA3 support
  588.                 B'1'  - Display does have PA3 support
  589.        Bit 5:   B'0'  - Display does not have Cursor Select support
  590.                 B'1'  - Display does have Cursor Select support
  591.        Bit 6:   B'0'  - Display does not have Move Cursor Order support
  592.                 B'1'  - Display does have Move Cursor Order support
  593.        Bit 7:   B'0'  - No Read MDT Immediate Alt Command support
  594.                 B'1'  - Read MDT Immediate Alt Command support
  595.      50
  596.        Bit 0-3: B'0001' - 24 x 80 Screen Size
  597.                 B'0011' - Capable of 24 x 80 and 27 x 132
  598.        Bit 4:   B'0'    - No light pen support
  599.                 B'1'    - Light pen support
  600.        Bit 5:   B'0'    - No Mag Stripe Reader support
  601.                 B'1'    - Mag Stripe Reader support
  602.        Bit 6-7: B'00'   - Mono display
  603.                 B'01'   - 5292/3179 style color, including color PCs
  604.      51         X'00'   - Reserved
  605.      52
  606.        Bit 0-2: B'000'   - No Double Byte Character Set (DBCS)
  607.                            capability
  608.                 B'001'   - Presentation screen DBCS capability only
  609.        Bit 3-7: B'00000' - Reserved
  610.      53
  611.        Bit 0-2: B'000'   - No graphics capability
  612.                 B'001'   - 5292-2 style graphics
  613.        Bit 3-7: B'00000' - Reserved
  614.      54-60      X'00'    Reserved (set to zero)
  615.  
  616.  
  617.  
  618. Chmielewski                                                    [Page 11]
  619.  
  620. RFC 1205                 5250 Telnet Interface             February 1991
  621.  
  622.  
  623. 6.  References
  624.  
  625.    1.  IBM, "IBM 5250 Information Display System, Functions
  626.        Reference Manual", SA21-9247-6, March 1987.
  627.  
  628.    2.  Postel, J. and J. Reynolds, "Telnet Protocol Specification",
  629.        RFC 854, USC/Information Sciences Institute, May 1983.
  630.  
  631.    3.  Postel, J. and J. Reynolds, "Telnet Option Specifications",
  632.        RFC 855, USC/Information Sciences Institute, May 1983.
  633.  
  634.    4.  Postel, J. and J. Reynolds, "Telnet Binary Transmission",
  635.        RFC 856, USC/Information Sciences Institute, May 1983.
  636.  
  637.    5.  VanBokkeln, J., "Telnet Terminal-Type Option", RFC 1091,
  638.        FTP Software, Inc., February 1989.
  639.  
  640.    6.  Postel, J. and J. Reynolds, "Telnet End of Record Option",
  641.        RFC 885, USC/Information Sciences Institute, December 1983.
  642.  
  643. Security Considerations
  644.  
  645.    Security issues are not discussed in this memo.
  646.  
  647. Author's Address
  648.  
  649.    Paul Chmielewski
  650.    IBM Corporation
  651.    Highway 52 and 37 Street North West
  652.    Rochester, Minnesota  55901
  653.  
  654.    Phone:  (507) 253-6315
  655.  
  656.    EMail:  paulc@rchland.iinus1.ibm.com
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674. Chmielewski                                                    [Page 12]
  675.